/*
/ * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package libreriaTicket.dao;
import conexion.BD;
import libreriaTicket.entity.Usuario;
import conexion.SqlFormat;
import java.util.ArrayList;
import libreriaTicket.entity.Comuna;

/**
 *
 * @author Duoc
 */
public class DaoUsuario {
    
  
    
    public static boolean sqlInsert(Usuario usuario)
    {
        try {
            SqlFormat sql = new SqlFormat(SqlFormat.INSERTAR,"usuario");
            sql.addField("usuario", usuario.getUsuario());
            sql.addField("rut", usuario.getRut());
            sql.addField("dv", usuario.getDv());
            sql.addField("password", usuario.getPassword());
            sql.addField("apellidoMaterno", usuario.getApellidoMaterno());
            sql.addField("apellidoPaterno", usuario.getApellidoPaterno());
           // sql.addField("direccion", usuario.getUsuario());
            sql.addField("nombre", usuario.getUsuario());
            sql.addField("codComuna",usuario.getComuna().getIdComuna());
            
            return BD.getInstance().sqlEjecutar(sql.crearInstruccion());
            
            
            
        } catch (Exception e) {
        }
        return false;
    }
    public static boolean sqlUpdate(Usuario usuario)
    {
        try {
           
            SqlFormat sql = new SqlFormat(SqlFormat.ACTUALIZAR,"usuario");
            sql.where("usuario", usuario.getUsuario());
            sql.addField("rut", usuario.getRut());
            sql.addField("dv", usuario.getDv());
            sql.addField("password", usuario.getPassword());
            sql.addField("apeMaterno", usuario.getApellidoMaterno());
            sql.addField("apePaterno", usuario.getApellidoPaterno());
            sql.addField("direccion", usuario.getUsuario());
            sql.addField("nombre", usuario.getUsuario());
            sql.addField("codComuna",usuario.getComuna().getIdComuna());
            
            return BD.getInstance().sqlEjecutar(sql.crearInstruccion());
            
            
        } catch (Exception e) {
        }
        return false;
    }
    public static boolean sqlDelete(Usuario usuario)
    {
        try {
            SqlFormat sql = new SqlFormat(SqlFormat.ELIMINAR,"usuario");
            sql.where("rut", usuario.getRut());
            
            return BD.getInstance().sqlEjecutar(sql.crearInstruccion());
            
            
        } catch (Exception e) {
        }
        return false;
    }
    public static Usuario sqlSelect(Usuario usuario)
    {
        
        try {
            Usuario user = new Usuario();
            SqlFormat sql = new SqlFormat(SqlFormat.SELECCIONAR,"usuario");
            sql.where("usuario",usuario.getUsuario());
            
            BD.getInstance().sqlQuery(sql.crearInstruccion());
            if(!BD.getInstance().sqlFetch()) return null;
            
            user.setUsuario(BD.getInstance().getString("usuario"));
            user.setNombre(BD.getInstance().getString("nombre"));
            user.setRut(BD.getInstance().getInt("rut"));
            user.setDv(BD.getInstance().getChar("dv"));
            user.setPassword(BD.getInstance().getString("password"));
            user.setApellidoPaterno(BD.getInstance().getString("apePaterno"));
            user.setApellidoMaterno(BD.getInstance().getString("apeMaterno"));
            user.setComuna(new Comuna(Integer.parseInt(BD.getInstance().getString("comuna"))));
            user.setDireccion(BD.getInstance().getString("direccion"));
            
            return user;
        } catch (Exception e) {
        }
        return null;
    }
    
    public static ArrayList<Usuario> sqlSelectAll()
    {
        ArrayList<Usuario> usuarios = new ArrayList<Usuario>();
        
        
        try {
            BD.getInstance().sqlQuery(SqlFormat.SelectAll("usuario"));
            while(BD.getInstance().sqlFetch()) {
            Usuario user = new Usuario();
            user.setUsuario(BD.getInstance().getString("usuario"));
            user.setNombre(BD.getInstance().getString("nombre"));
            user.setRut(BD.getInstance().getInt("rut"));
            user.setDv(BD.getInstance().getChar("dv"));
            user.setPassword(BD.getInstance().getString("password"));
            user.setApellidoPaterno(BD.getInstance().getString("apellidoPaterno"));
            user.setApellidoMaterno(BD.getInstance().getString("apellidoMaterno"));
            user.setComuna(new Comuna(Integer.parseInt(BD.getInstance().getString("codComuna"))));
            //user.setDireccion(BD.getInstance().getString("direccion"));
            
            usuarios.add(user);
            
            }
            return usuarios;
        } catch (Exception e) {
        }
        return null;
    }
    
    public static boolean loguin(Usuario usuario)
    {
        try {
            String sql = "select count(*) as nn where usuario = '" + usuario.getUsuario() +"' and password = '"+usuario.getPassword()+"'";
            BD.getInstance().sqlQuery(sql);
            
            if(!BD.getInstance().sqlFetch()) return false;
            
            if(BD.getInstance().getInt("nn") == 1) return true;//Si el usuario existe retorna 1
            
        } catch (Exception e) {
        }
        
        return false;
    }
    
    
    
    
    
}
